home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / prog / alertdrv.arj / INTDEMO.CPP < prev    next >
C/C++ Source or Header  |  1994-01-25  |  4KB  |  140 lines

  1. /*------------------------------------------------------------------------------
  2.    Copyright           : (c)1994 by Logical Operators
  3.                          All Rights Reserved.
  4.    Filename            : AlertTst.CPP
  5.    Header File         : None
  6.    Purpose             : Sample program demonstrating the use of the AlertDriver
  7.                          classes.
  8.    Compiler Directives : None
  9.  
  10.    Modification History:
  11.    Version   Date    Programmer and Description of Changes
  12.    ------- --------  --------------------------------------------------------
  13.     1.00   01/20/94  Original version by Warren J. Hairston.
  14.    ---------------------------------------------------------------------------*/
  15.  
  16.  
  17.  
  18.    #define Uses_TApplication   //for Borland Turbo Vision apps
  19.    #define WIN30               //use Windows 3.0 API for Borland OWL
  20.  
  21.  
  22.  
  23.    //included files
  24.    //--------------
  25.    #include <INTEGER.H>   //AlertableObject class declaration
  26.    #include <limits.h>     //for INT_MIN, INT_MAX declarations
  27.  
  28.    #ifdef BORLAND_OWL
  29.       #include <owl.h>
  30.    #endif   //BORLAND_OWL
  31.  
  32.  
  33.  
  34. /*============================================================================*/
  35.  
  36.  
  37.  
  38. #ifdef BORLAND_TV
  39.    class TMyApp : public TApplication
  40.    {
  41.       public:
  42.          TMyApp() :
  43.             TProgInit(&TMyApp::initStatusLine, &TMyApp::initMenuBar,
  44.                       &TMyApp::initDeskTop) {};
  45.    };   //class TMyApp
  46. #endif   //BORLAND_TV
  47.  
  48.  
  49.  
  50. #ifdef BORLAND_OWL
  51.    class TMyApp : public TApplication
  52.    {
  53.       public:
  54.          TMyApp(LPSTR AName, HANDLE hInstance, HANDLE hPrevInstance,
  55.                 LPSTR lpCmdLine, int nCmdShow) :
  56.             TApplication(AName, hInstance, hPrevInstance, lpCmdLine, nCmdShow)
  57.             {}
  58.    };   //class TMyApp
  59. #endif   //BORLAND_OWL
  60.  
  61.  
  62.    void runDemo(void)
  63.    /*---------------------------------------------------------------------------
  64.       Purpose:  Platform independent code which executes the demo code.
  65.       Parameters:  None.
  66.       Return Value:  None.
  67.       ------------------------------------------------------------------------*/
  68.    {
  69.       //test the defaultAlertDriver from a non-object
  70.       defaultAlertDriver->HandleInfo("Preparing to create 2 Integer objects.");
  71.  
  72.       //allocate program variables which use the default driver
  73.       Integer a(0), b(3);
  74.  
  75.  
  76.  
  77.       defaultAlertDriver->HandleInfo(
  78.          "Preparing to test undefined Integer error codes and literals.");
  79.       //run the Test function for Integer b
  80.       b.TestAlertDriver();
  81.  
  82.  
  83.  
  84.       defaultAlertDriver->HandleInfo(
  85.          "Preparing to divide an Integer by zero.");
  86.       //invoke operations on the objects
  87.       b = b/a;   //generates a divide by zero error
  88.  
  89.  
  90.  
  91.       defaultAlertDriver->HandleInfo(
  92.          "Preparing to assign INT_MAX to an Integer.");
  93.       b = INT_MAX;
  94.  
  95.  
  96.  
  97.       defaultAlertDriver->HandleInfo(
  98.          "Now multiply the Integer by 2, generating an overflow error.");
  99.       b = b * 2;   //when b == INT_MAX, this generates an overflow error
  100.    };   //function runDemo
  101.  
  102.  
  103.  
  104. #ifdef TARGET_WINDOWS
  105.    #ifdef __BORLANDC__
  106.       #pragma argsused
  107.    #endif   //__BORLANDC__
  108. int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine,
  109.                    int nCmdShow)
  110. #else   //TARGET_WINDOWS
  111. void main(void)
  112. #endif   //!TARGET_WINDOWS
  113. {
  114.    #ifdef BORLAND_TV
  115.       TMyApp myApp;
  116.       myApp.run();
  117.    #endif   //BORLAND_TV
  118.  
  119.    #ifdef BORLAND_OWL
  120.       TMyApp myApp("AlertDriver - OWL Demo - Close This Window", hInstance,
  121.                    hPrevInstance, lpCmdLine, nCmdShow);
  122.       myApp.Run();
  123.    #endif   //BORLAND_OWL
  124.  
  125.    /*Remove the comments from the next two lines to attach a text file
  126.      AlertDriver to the default driver*/
  127. //   defaultAlertDriver->ChangeLinkedAlertDriver(
  128. //      new TextFileAlertDriver("adtest.log", radFREERESOURCE));
  129.  
  130.    /*Enable error processing for all drivers in default chain.  By default,
  131.      this is already enabled - shown here only for demo purposes.*/
  132.    defaultAlertDriver->ChangeProcFlags(adfERROR, cfoENABLE | cfoCHAIN);
  133.  
  134.    runDemo();
  135.  
  136.    #ifdef TARGET_WINDOWS
  137.       return 0;
  138.    #endif   //TARGET_WINDOWS
  139. };   //function main
  140.